In the digital age, organizations increasingly rely on digitally-stored data. To protect against data loss, an organization may use a backup system to back up important data. For example, an organization may configure a backup system to run a backup job that incrementally backs up data on a volume on a daily basis.
In order to provide incremental backups, a backup system may track changes made to a volume of data (e.g., by using a change tracking driver) until the next scheduled incremental backup. The backup system may then use a list of the tracked changes to determine which blocks of data to capture in the incremental backup. The list may then be cleared in order to start tracking changes for a subsequent incremental backup.
In some cases, an organization may require multiple simultaneous backup jobs. For example, the organization may wish to have one backup job incrementally backing up data on a volume on a daily basis and another backup job incrementally backing up data on the volume on a weekly basis. However, traditional block-based backup systems may not consistently allow for overlapping backup jobs running on different schedules. For example, a backup job may start an incremental backup on a volume, and a traditional backup system may start tracking changes made to data on the volume. A second backup job may then begin and end an incremental backup, clearing the change list for the volume. When the first backup job runs again, it may accordingly fail to capture any changes made before the second backup began its incremental backup.